package rg_game

import (
	"context"
)

// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
// @route_go
// @alias game
type Routes interface {
	Y用户登出(ctx context.Context, args *Y用户登出参数) (err error)
	// 选择游戏服后，会同步玩家自身信息到客户端
	Y用户登入(ctx context.Context, args *Y用户登入参数, reply *Y用户登入响应) (err error)
}

// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
// @route_go
// @alias player
type PlayerRoutes interface {
	J角色列表(ctx context.Context, args *J角色列表参数, reply *J角色列表响应) (err error)
	J角色创建(ctx context.Context, args *J角色创建参数, reply *J角色创建响应) (err error)
	J角色选择(ctx context.Context, args *J角色选择参数, reply *J角色选择响应) (err error)

	J进入场景(ctx context.Context, args *J进入场景参数, reply *J进入场景响应) (err error)

	Z战斗结束(ctx context.Context, args *Z战斗结束参数) (err error)

	H活动列表(ctx context.Context, args *H活动列表参数, reply *H活动列表响应) (err error)
	H活动更新(ctx context.Context, args *H活动更新参数, reply *H活动更新响应) (err error)

	G功能记录更新(ctx context.Context, args *G功能记录更新参数, reply *G功能记录更新响应) (err error)
	G功能登记(ctx context.Context, args *G功能登记参数) (err error)
	G功能更新(ctx context.Context, args *G功能更新参数) (err error)

	K卡包清理(ctx context.Context, args *K卡包清理参数) (err error)
	K卡片更新(ctx context.Context, args *K卡片更新参数) (err error)
	K卡片移动(ctx context.Context, args *K卡片移动参数) (err error)
	K卡片删除(ctx context.Context, args *K卡片删除参数) (err error)
	K卡片分解(ctx context.Context, args *K卡片分解参数, reply *K卡片分解响应) (err error)
	// 扩展
	K卡片分解By品质(ctx context.Context, args *K卡片分解By品质参数, reply *K卡片分解响应) (err error)

	D地图选关(ctx context.Context, args *D地图选关参数, reply *D地图选关响应) (err error)
	F副本开启(ctx context.Context, args *F副本开启参数) (err error)
	F副本进入(ctx context.Context, args *F副本进入参数, reply *F副本进入响应) (err error)
	F副本领取(ctx context.Context, args *F副本领取参数, reply *F副本领取响应) (err error)
	F副本离开(ctx context.Context, args *F副本离开参数) (err error)

	G挂机开始(ctx context.Context, args *G挂机开始参数) (err error)
	G挂机升级(ctx context.Context, args *G挂机升级参数) (err error)
	G挂机领奖(ctx context.Context, args *G挂机领取奖励参数) (err error)

	R任务列表(ctx context.Context, args *R任务列表参数) (err error)
	R任务接受(ctx context.Context, args *R任务接受参数) (err error)
	R任务放弃(ctx context.Context, args *R任务放弃参数) (err error)
	// 提交判断是否完成任务
	R任务完成(ctx context.Context, args *R任务完成参数) (err error)
	// 强制完成后，可领取[完成奖励]
	R任务强制(ctx context.Context, args *R任务强制参数) (err error)
	R任务领奖(ctx context.Context, args *R任务领奖参数, reply *R任务领奖响应) (err error)

	S商店入库(ctx context.Context, args *S商店入库参数, reply *S商店入库响应) (err error)
	S商店购买(ctx context.Context, args *S商店购买参数, reply *S商店购买响应) (err error)

	Z执行运行(ctx context.Context, args *Z执行运行参数) (err error)
	Z执行奖励(ctx context.Context, args *Z执行运行参数, reply *Z执行奖励响应) (err error)

	W未领取统计(ctx context.Context, args *W未领取统计参数) (err error)
	W未领取领取(ctx context.Context, args *W未领取领取参数) (err error)

	T调试方法(ctx context.Context, args *T调试方法参数) (err error)
}

// @schema_export --ident=schema --json
// @schema_go
// @route_go
// @alias playerin
type PlayerRoutesInternal interface {
	UpdateBy每分钟整点(ctx context.Context, args *UpdateBy每分钟整点参数)
}

// X项目
// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
// @route_go
// @alias game_local
type LocalRoutes interface {
	Y游戏服更新(ctx context.Context, args *Y游戏服更新) (err error)
	Y游戏服更新活动(ctx context.Context, args *Y游戏服更新活动参数) (err error)
	G更新活动列表(ctx context.Context, args *W无参数) (err error)
}

// @schema_export --ident=schema --json
// @schema_go
// @schema_ts
// @route_go
// @alias world
type WorldRoutes interface {
	F房间创建(ctx context.Context, args *F房间创建参数, reply *F房间创建响应) (err error)
	F房间加入(ctx context.Context, args *F房间加入参数, reply *F房间加入响应) (err error)
	F房间离开(ctx context.Context, args *F房间离开参数) (err error)
	F房间准备(ctx context.Context, args *F房间准备参数) (err error)
	// 玩家都准备好了就可以开始
	F房间开始(ctx context.Context, args *F房间开始参数) (err error)

	// 用于测试
	C场景创建(ctx context.Context, args *C场景创建参数, reply *C场景创建响应) (err error)
	C场景销毁(ctx context.Context, args *C场景销毁参数) (err error)
	// 过期
	C场景准备(ctx context.Context, args *C场景准备参数) (err error)
	C场景暂停(ctx context.Context, args *C场景暂停参数) (err error)
	C场景恢复(ctx context.Context, args *C场景恢复参数) (err error)
	C场景下一帧(ctx context.Context, args *C场景下一帧参数) (err error)
	C场景离开(ctx context.Context, args *C场景离开参数) (err error)
	C场景进入(ctx context.Context, args *C场景进入参数) (err error)
	C场景设置属性(ctx context.Context, args *C场景设置属性参数) (err error)
	// 停止所有支援，并启动指定支援
	C场景重置支援(ctx context.Context, args *C场景重置支援参数) (err error)
	C场景启动支援(ctx context.Context, args *C场景重置支援参数) (err error)

	K框选选择单位(ctx context.Context, args *K框选选择单位参数)
	K框选派发指令(ctx context.Context, args *K框选派发指令参数)
	Z指令指定目标单位(ctx context.Context, args *Z指令指定目标单位)
}
